This invention relates generally to transactional message systems, and more particularly to the identification of transactional boundaries among messages of transactions sent and received within such systems.
When organizations need to have large-scale computer systems that hold mission critical information, such as purchase orders, financial information, etc., they usually resort to message transaction systems. Message transaction systems ensure that data is not lost if the system crashes, and also that data is not duplicatedxe2x80x94such as ensuring that two copies of the same purchase order are not processed, etc. A transaction is an activity or a request, such as an order, a purchase, a change, or an addition to a database of information. Transactions usually update one or more files on a non-volatile storage such as a hard disk drive, and thus can serve as both an audit trail and a history for future analyses. A transaction can include one or more messages. A transaction is considered committed when all the messages of the transaction have been received and processed.
Message transaction systems can be online or offline. Online, or synchronous, systems are also referred to as real-time systems, where transactions are processed and the appropriate files updated as soon as transactions are entered or received. Typically, confirmations are then returned to the sender. Thus, for online systems, usually a single message transaction is processed at a time. Offline, or a synchronous, systems, by comparison, do not process transactions as soon as they are entered or received. Rather, a number of message transactions are processed as a batchxe2x80x94for example, at the end of the business day, once a week, etc.
Because a number of transactions may be sent to a given receiver, where each of those transactions can include a number of messages, the receiver must be able to determine which messages belong to which transactions. This task is made more difficult because the messages may be transmitted over a network such as wide-area network (WAN) or the Internet that is vulnerable to losing messages, such that the receiver does not receive one or more messages of a given transaction. The receiver may not receive messages for other reasons as well, including incorrect encryption, failed authentication, insufficient permissions, and time-out occurrences, as can be appreciated by those within the art. For this and other reasons, therefore, there is a need for the present invention.
The present invention relates to the identification of transactional boundaries among the messages sent and received within a transactional message system. In one embodiment, there is a system including a first computer and a second computer. The first computer is designed to at least set transactional boundaries among messages, and transmit the messages. The second computer is designed to at least receive the messages, and determine the transactional boundaries thereamongxe2x80x94specifically such that the second computer can determine whether at least a proper first and last message of a particular transaction has been received. In one embodiment, transactional boundaries are set among messages by tagging the first message of a transaction with a first-message identifier, and the last message with a last-message identifier. Furthermore, all the messages of the transaction can be tagged with an identifier particular to the transaction.
Embodiments of the invention provide for advantages not found within the prior art. A receiver computer, for example, if, after receiving the first message of a first transaction as has been tagged, receives another message tagged with the first-message identifier, then the computer knows that one or more messages of the first transaction has been lostxe2x80x94since the last message of the first transaction has not been received. Thus, the computer knows that this transaction cannot be committed, since at least one of the messages of the transaction has not been received. Sender-side transactions are therefore correlated with receiver-side transactions.